/**
 * Project hdmap
 * @author shengjialiang
 * @version v1.0
 */


#ifndef _IDATASET_H
#define _IDATASET_H

#include "map_common/ObjectVector.h"
#include "map_dataset/DataSetConfig.h"
#include <osg/matrix>

namespace DataManager
{
	class CProperty;
	class IFeature;
    class MAP_DATASET_EXPORT IDataSet
        : public Common::CObjectVector
    {
    public:
        IDataSet();

        virtual ~IDataSet();

		virtual IFeature* createFeature() = 0;

		inline osg::Matrix& getTransformation() { return this->mTransformation; }

		inline CProperty* getProperty(){ return this->mpProperty; }

		virtual Common::CObjectVector* getFeaturesByOwnerID(const std::string& in_ownerID);
    private:
		osg::Matrix	mTransformation;
		CProperty*	mpProperty;
    };
}


#endif //_IDATASET_H